package Z06XianCheng.XC07Pool;

public class TestThread {
    public static void main(String[] args) {
        ThreadPool pool = new ThreadPool();
        for (int i  = 0; i < 5 ; i++){
            Runnable task = new Runnable() {
                @Override
                public void run() {
                    //System.out.println("执行任务");
                    //任务可能是打印一句话
                    //可能是访问文件
                    //可能是做排序
                }
            };

            pool.add(task);

            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

        }

    }

}

class TestThread1{
    /**
     * 创造一个情景，每个任务执行的时间都是1秒
     * 刚开始是间隔1秒钟向线程池中添加任务
     * 然后间隔时间越来越短，执行任务的线程还没有来得及结束，新的任务又来了。
     * 就会观察到线程池里的其他线程被唤醒来执行这些任务
     */
    public static void main(String[] args) {
        ThreadPool pool = new ThreadPool();
        int sleep = 1000;

        while (true){
            pool.add(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            });

            try {
                Thread.sleep(sleep);
                sleep = sleep > 100 ? sleep-100 :sleep;
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
